package com.itheima.info.manger.controller;

import com.itheima.info.manger.domain.Teacher;
import com.itheima.info.manger.service.TeacherService;

import java.util.Scanner;

/*
    客服类： 专门用来和用户打交道的
        1. 接收用户键盘录入的数据      -- 用户请求
        2. 找业务员完成具体的业务功能操作
        3. 根据业务员的反馈结果,来给出用户相关的一个响应信息
 */
public class TeacherController {
    //1.页面展示
    public void end() {
        Scanner sc=new Scanner(System.in);
        lo:
        while(true){
            System.out.println("--------欢迎来到 <教师> 管理系统--------");
            System.out.println("请输入您的选择: 1.添加教师  2.删除教师  3.修改教师  4.查看教师  5.退出");

            String choice = sc.next();
            switch(choice){
                case "1":
                    //System.out.println("1.添加教师");
                    addTeacher();
                    break;
                case "2":
                    //System.out.println("2.删除教师");
                    deleteTeacher();
                    break;
                case "3":
                    //System.out.println("3.修改教师");
                    updateTeacher();
                    break;
                case "4":
                    //System.out.println("4.查看教师");
                    findAllTeachers();
                    break;
                case "5":
                    System.out.println("感谢您的使用");
                    break lo;
                default:
                    System.out.println("您输入有误,请重新输入");
                    break;
            }
        }

    }


    //客服中的修改教师信息方法
    private void updateTeacher() {
        //1.键盘录入需要修改信息的教师的id,创建业务员对象去执行修改方法
        TeacherService teacherService = new TeacherService();
        Scanner sc= new Scanner(System.in);
        System.out.println("请输入需要修改的教师学号:");
        String updateId ;

        while(true){
            updateId  = sc.next();

            //2.查找这个要修改信息的id是否存在
            boolean exsit =teacherService.isExist(updateId);
            if(exsit){
                    break;
            }else{
                System.out.println("不存在,重新输入");
            }
        }

        //3.让用户录入要修改的教师对象信息
        System.out.println("请输入新姓名:");
        String name=sc.next();
        System.out.println("请输入新年龄:");
        String age=sc.next();
        System.out.println("请输入新出生日期:");
        String birthday=sc.next();

        //4.根据新的教师信息打包,封装新的教师对象
        Teacher newTeacher=new Teacher();
        newTeacher.setSid(updateId);
        newTeacher.setName(name);
        newTeacher.setAge(age);
        newTeacher.setBirthday(birthday);

        //5.指挥业务员进行修改业务,将要修改的教师id和新的教师对象输入方法中
        teacherService.updateTeacherById(updateId,newTeacher);

        //6.给出修改成功的提示信息
        System.out.println("修改成功");

    }


    //客服中删除教师的方法
    private void deleteTeacher() {

        //2.创建业务员并指挥业务员去执行删除教师的方法
        TeacherService teacherService = new TeacherService();
        Scanner sc= new Scanner(System.in);
        //1键盘录入该教师的id并判断id是否存在
        System.out.println("您要删除的学生id");
        String delId;
        while(true){
            delId=sc.next();
            boolean exsits=teacherService.isExist(delId);
            if (exsits){
                //存在,就直接指挥业务员删除
                break;
            }else{
                //不存在,重新输入教师学号
                System.out.println("您输入的数据有误,重新输入教师学号");
            }
        }
        //3.调用业务员中的deleteStudentById方法,根据id删除学生
        teacherService.deleteStudentById(delId);
        //4.提示删除成功
        System.out.println("删除成功");






    }



    //客服中查看教师的方法
    private void findAllTeachers() {
        //1.指挥业务员进行查看业务,把数据都查出来
        TeacherService teacherService = new TeacherService();
        Teacher[] teas=teacherService.findAllTeachers();

         //2.返回的数据有两种情况,无数据,有数据
        if(teas==null){
            System.out.println("无数据");
        }else{
            //有数据,遍历打印
            System.out.println("学号\t\t姓名\t年龄\t生日");
            for (int i = 0; i <teas.length; i++) {
                Teacher tea=teas[i];
                if(tea!=null){
                    System.out.println(tea.getSid()+"\t"+tea.getName()+"\t" + tea.getAge() + "\t\t" + tea.getBirthday());
                }
            }
        }

    }





    //客服中的添加教师功能
    private void addTeacher() {
        //1.接受用户录入教师信息
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入教师id");
        String id ;
        while(true){
           id = sc.next();
            //创建业务员对象,指挥业务员对象去校验一下当前录入的id是否已被占用
            TeacherService teacherService=new TeacherService();
            boolean exist =teacherService.isExist(id);

            if(exist){
                System.out.println("当前id已被占用");
            }else{
                break;
            }
        }
        System.out.println("请输入教师姓名:");
        String name = sc.next();
        System.out.println("请输入教师年龄");
        String age = sc.next();
        System.out.println("请输入教师出生日期:");
        String birthday = sc.next();

        //2.将信息打包整理封装成教师对象传递给业务员
        Teacher tea = new Teacher();
        tea.setSid(id);
        tea.setName(name);
        tea.setAge(age);
        tea.setBirthday(birthday);

        //创建业务员对象,指挥业务员对象去执行增加教师的方法
        TeacherService teacherService=new TeacherService();
        boolean res = teacherService.addTeacher(tea);

        //3.判断是否添加成功
        if(res){
            System.out.println("添加成功");
        }else {
            System.out.println("添加失败");
        }
    }




}






